<?php 
/**
 *  Por Federico Pisarello - SisDev Software (c) 2013 - Buenos Aires, Argentina.
 * 	fpisarello@sisdevsoft.com
 */

require("includes/funciones.inc.php");

session_start();
if(!isset($_SESSION['nombreUsuario']))
	exit();

function searchABMUnidadMedida()
{
	require("includes/constants.php");
	require("includes/datatables_db/Datatables.php");
	
	$datatables = new Datatables();
	
	$datatables
			->select('u.idUnidadMedida, u.descripcion, u.tipo, u1.descripcion descPadre, u.cantidad')
			->from('unidad_medida u')
			->join('unidad_medida u1','u.idUnidadPadre = u1.idUnidadMedida', 'left')
			->edit_column('u.tipo', '$1', 'tipoUnidadMedida(u.tipo)')
			->where("u.estado <> '".$stateErase."'");

	return $datatables->generate();	
}

function tipoUnidadMedida($tipoUnidadMedida)
{
	require("includes/constants.php");
	
	$descTipoUnidadMedida = "";
	switch ($tipoUnidadMedida) {
		case $unidadMedidaPrincipal:
			$descTipoUnidadMedida = "Principal";
			break;
		
		case $unidadMedidaComplementaria:
			$descTipoUnidadMedida = "Complementaria";
			break;
	}
	
	return $descTipoUnidadMedida;
}

function addOrEdit()
{
	require("includes/constants.php");

	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$DB->StartTrans(); // start transaction
	
	if(!isset($_REQUEST["idUnidadMedida"])){
			
		$strSQL = "INSERT INTO unidad_medida ( ";
		$strSQL .= "	descripcion, ";
		$strSQL .= "	tipo, ";
		$strSQL .= "	idUnidadPadre, ";
		$strSQL .= "	cantidad, ";
		$strSQL .= "	estado ";
		$strSQL .= "	) VALUES ( ";
		$strSQL .= "	'".mb_strtoupper($_REQUEST["descripcion"], "UTF-8")."', ";
		$strSQL .= "	'".$_REQUEST["tipo"]."', ";
		$strSQL .= "	'".$_REQUEST["cmbUnidadMedida"]."', ";
		$strSQL .= "	'".$_REQUEST["cantidad"]."', ";
		$strSQL .= "	'".$stateAdd."' ";
		$strSQL .= "	)";
		
		$DB->Execute($strSQL);
	}
	else{
		$strSQL = "UPDATE unidad_medida SET ";
		$strSQL .= "	descripcion = '".mb_strtoupper($_REQUEST["descripcion"], "UTF-8")."', ";
		$strSQL .= "	tipo = '".$_REQUEST["tipo"]."', ";
		$strSQL .= "	idUnidadPadre = '".$_REQUEST["cmbUnidadMedida"]."', ";
		$strSQL .= "	cantidad = '".$_REQUEST["cantidad"]."', ";
		$strSQL .= "	estado = '".$stateModify."'";
		$strSQL .= " WHERE idUnidadMedida = ". $_REQUEST["idUnidadMedida"];
		
		$DB->Execute($strSQL);
	}
	
	if (!$DB->CompleteTrans())
	{
		$arrJSON->status = "ERROR";
		$arrJSON->msg = "Error al Grabar la Unidad de Medida";
	}
	else
	{
		$arrJSON->status = "OK";
		$arrJSON->msg = "La Unidad de Medida fue Guardado con Exito";
	}	
	return json_encode($arrJSON);
}

function del()
{
	require("includes/constants.php");
	
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$DB->StartTrans(); // start transaction
	$DB->Execute("UPDATE unidad_medida SET estado = '$stateErase' WHERE idUnidadMedida = " . $_REQUEST["idUnidadMedida"]); // execute query

	if (!$DB->CompleteTrans())
	{
		$arrJSON->status = "ERROR";
		$arrJSON->msg = "Error al Eliminar la Unidad de Medida";
	}
	else
	{
		$arrJSON->status = "OK";
		$arrJSON->msg = "La Unidad de Medida se Elimino Correctamente";
	}	
	return json_encode($arrJSON);
}

function editUnidadMedida()
{
	require("includes/constants.php");
	
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$rsUnidadMedida = $DB->Execute("SELECT * FROM unidad_medida WHERE estado <> '$stateErase' AND idUnidadMedida = " . $_REQUEST["idUnidadMedida"]); // execute query
						
	if(!$rsUnidadMedida->EOF){
		$joUnidadMedida->data['descripcion'] = $rsUnidadMedida->fields("descripcion");
		$joUnidadMedida->data['tipo'] = $rsUnidadMedida->fields("tipo");
		$joUnidadMedida->data['idUnidadPadre'] = $rsUnidadMedida->fields("idUnidadPadre");
		$joUnidadMedida->data['cantidad'] = $rsUnidadMedida->fields("cantidad");
		
		return json_encode($joUnidadMedida->data);
	}
	else
		return json_encode(array());
}

function getUnidadesMedida()
{
	require("includes/constants.php");
	
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$rsUnidadMedida = $DB->Execute("SELECT * FROM unidad_medida WHERE tipo = '$unidadMedidaPrincipal'");
	
	if($rsUnidadMedida->EOF)
		return json_encode(array());
	
	$i=0;
	while(!$rsUnidadMedida->EOF){
		$arrUnidadMedida->data[$i]['idUnidadMedida'] = $rsUnidadMedida->fields('idUnidadMedida');
		$arrUnidadMedida->data[$i++]['descripcion'] = $rsUnidadMedida->fields('descripcion');
		$rsUnidadMedida->MoveNext();
	}
	
	return json_encode($arrUnidadMedida->data);
}

switch($_REQUEST['accion'])
{
	case "EDIT":
		echo editUnidadMedida();
		break;
	case "DELETE":
		echo del();
		break;
	case "search":
		echo searchABMUnidadMedida();
		break;
	case "addOrEdit":
		echo addOrEdit();
		break;
	case "getUnidadesMedida":
		echo getUnidadesMedida();
		break;
		
}
?>
